package ru.compft.common.dao;

import ru.compft.common.data.AppUser;

import java.util.List;

/**
 * User: ASUS
 * Date: 01.06.12
 * Time: 0:07
 * DAO для работы с пользователями
 */
public interface UserDao {
    /**
     * Поиск пользователя по логину
     *
     * @param userName
     * @return
     */
    AppUser findUserByLogin(String userName);

    /**
     * Поиск пользователя по ID
     *
     * @param userId
     * @return
     */
    AppUser findUserById(Long userId);

    /**
     * Получение списка всех ролей системы
     *
     * @return
     */
    List<AppUser> getAllUsers();

    /**
     * Получение определенного количества ролей (count) с определенного индекса
     *
     * @param from
     * @param count
     * @return
     */
    List<AppUser> getUsers(int from, int count);

    /**
     * Подсчитываем все роли в БД
     *
     * @return
     */
    int countAllUsers();

    /**
     * Обновляем данные о пользователе
     *
     * @param user
     * @return
     */
    AppUser update(AppUser user);

    /**
     * Добавляем пользователя
     *
     * @param user
     */
    AppUser persist(AppUser user);

    /**
     * Удаляем пользователя
     *
     * @param user
     * @return
     */
    Boolean delete(AppUser user);
}
